package 数组;

/**
 * 给你一个整数数组 nums ，找到其中最长严格递增子序列的长度
 * 例1：
 * 输入：nums = [10,9,2,5,3,7,101,18]
 * 输出：4
 * 解释：最长递增子序列是 [2,3,7,101]，因此长度为 4 。
 * 例2：
 * 输入：nums = [0,1,0,3,2,3]
 * 输出：4
 * @author 翟晓龙
 * @date 2022/4/1
 */
public class 最长递增子序列 {

    public static void main(String[] args) {

        int[] array = {0,1,0,3,2,3,4,5};
        int maxLength = calMaxLength(array);
    }

    /**
     * 最长连续递增子序列
     * @param array
     * @return
     */
    public static int calMaxLength(int[] array){
        int slowIndex = 0;
        int fastIndex = 0;
        int maxLength = 0;
        while (true){
            fastIndex ++;
            // 计算长度
            if (array[fastIndex - 1] > array[fastIndex]){
                int length = fastIndex - slowIndex + 1;
                if (length > maxLength){
                    maxLength = length;
                }
                // 慢指针前进
                slowIndex = fastIndex;
            }
            if (fastIndex == array.length -1 ){
                break;
            }
        }
        return maxLength;
    }
}
